"""
logger.py

This file is part of a program that implements a Software-Defined Radio.

Copyright (C) 2014 by G3UKB Bob Cowdery

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

The authors can be reached by email at:

	bob@bobcowdery.plus.com

"""

# Python imports
import sys, os
import logging
from logging import handlers
from time import sleep

# Application imports
from common.defs import *

"""
The logger logs messages to a cyclic file.
"""
class Logger():
	
	def __init__(self):
		""" Constructor """
		
		# Set up the local logging environment
		if not os.path.exists(os.path.join('..', '..', 'logs')):
			os.mkdir(os.path.join('..', '..', 'logs'))
		logger = logging.getLogger('sdr_script')
		logger.setLevel(logging.INFO)
		format = logging.Formatter("%(asctime)s - %(name)s - %(thread)5d - %(levelname)-5s - %(message)s")
		# Log to a rotating file
		h = logging.handlers.RotatingFileHandler(os.path.join('..', '..', 'logs', 'sdr_script.log'), maxBytes=100000, backupCount=5)
		h.setLevel(logging.INFO)
		h.setFormatter(format)
		logger.addHandler(h)		
		logger.log(logging.INFO, 'Logging initialised ===================================')


